Programming: 프로그램을 설계하고 소스코드를 작성하여 디버깅하는 과정
DB Programming: DBMS에 데이터를 정의하고, 저장된 데이터를 읽어와 데이터를 변경하는
프로그램을 작성하는 과정, 일반 프로그램과 달리 SQL을 포함
데이터 베이스 프로그래밍 중에서도 SQL Interface와 Embedded Programming을 많이 사용한다.
DB Programming 방법- SQL 전용 언어를 사용
- 일반 프로그래밍 언어에 SQL을 삽입하여 사용하는 방법
- 웹 프로그래밍 언어에 SQL을 삽입하여 사용하는 방법
- 4GL(4th Generation Language)
1세대: 기계어, 2세대:어셈블리어, 3세대: 절차지향언어, 4세대:순차형 언어 이후 언어
4GL은 사용자 중심의 언어로 절차지향적인 틀에서 벗어난 언어 JAVA, C++과 같은 객체 지향의 언어를 포함
PL/SQL(Procedural Language/Structured Query Language)응용 프로그램을 작성하는데 사용하는 오라클 전용 SQL 언어
SQL 전용 언어로 SQL문에 변수, 제어, 입출력 등의 프로그래밍 기능을 추가하여 SQL만으로 처리하기 어려운 문제 해결
SQL Developer에서 작성하고 컴파일 후 결과를 실행
PL/SQL에는 프로시저, 트리거, 사용자 정의 함수 등이 있다.
프로시저프로시저를 정의하려면 CREATE PROCEDURE 문을 사용해야 한다.
PL/SQL 선언부(BEGIN)과 실행부(END)로 구성된다.
선언부에서는 변수와 매개변수를 선언하고, 실행부에서는 프로그램 로직을 구현
매개변수(parameter)는 저장 프로시저가 호출될 때, 그 프로시저에 전달되는 값
변수(Variable)은 저장 프로시저나 트리거 내에서 사용되는 값
주석은 /* */ 사이 혹은 — 다음에 기술한다.
프로시저가 한번에 한 행씩 처리하기 원하는 경우 커서(Cursor)를 활용하여 테이블의 행을 순서대로 가르키도록 하고,
필요한 경우에 그 행의 데이터를 추출할 수 있다.
트리거트리거(Trigger)는 데이터의 변경(INSERT, DELETE, UPDATE)문이 실행될 때, 자동으로 실행되는 프로시저
BEFORE 트리거와 AFTER 트리거가 있다.
사용자 정의 함수사용자 정의 함수는 수학의 함수와 마찬가지로 입력된 값을 가공하여 결과를 돌려준다.
sequence & procedure
create sequence seq_sqwon_sabun
start with 201
increment by 2
maxvalue 299;
create or replace procedure p_sawon_ex_in
(name sawon.saname%type,
pay sawon.sapay%type,
job sawon.sajob%type,
sex sawon.sasex%type,
magr sawon.samgr%type,
mgr sawon.samgr%type,
deptname dept.dname%type)
is
commval sawon.comm%type;
begin
if(depname='영업부' or deptnam='관리부')then
comval:=pay*0.1;
else
comval:=0;
end if;
insert into sawon_ex(sabun, sahire, saname, sapay, sajob, sasex, samgm deptno, comm)
values(seq_sawon_sabun.nextval, sysdate, name, pay, job, sex, mgr,
(select deptno from dept where dname=deptname), commval);
end;
/
PL/SQL 함수
create or replace function f_graph
(num number)
return varchar2
is
cnt number(3):=num/100;
begin
return lpad('*', cnt, '*');
end;
/